package example;

import java.util.Date;
import java.util.List;

public class TrffWeb  {
	
	private static final long serialVersionUID = -1345592736034851167L;
	//系统类别,接口提供者的业务类别代码， 如机动车登记业务：01，驾驶证管理业务：02，事故处理：03，违法处理：04，
	// 交警队平台：05，剧毒品业务：06
	private String xtlb ;

	//接口序列号,由外挂系统请求服务平台授权生成下发
	private String jkxlh;

	// 接口标识,5位，由系统类别＋一位级别代码＋两位接口顺序号组成(参照监管系统)，C：支队、B:总队，A：部局。
	// 如01A01代表机动车部局端提供的接口。
	// 定义时查询类接口顺序号取50以内的数字，写入接口顺序号定义为50以上的数字。
	private String jkid;

	//查询条件,封装查询条件的XML格式文档
	private String QueryXmlDoc;

	private int type;

	private String sfzmhm;

	//号牌种类 按GA/T16.7
	private String hpzl;

	//号牌号码 符合GA36，但不包含汉字部分，如“京”、“使”、“领”、“挂”、“学”、“警”等
	private String hphm;

	//档案编号
	private String dabh;

    //查询电子监控照片信息
    private String xh;

    //决定书编号
    private String jdsbh;

    public String getJdsbh() {
        return jdsbh;
    }

    public void setJdsbh(String jdsbh) {
        this.jdsbh = jdsbh;
    }

    public String getXh() {
        return xh;
    }

    public void setXh(String xh) {
        this.xh = xh;
    }

    public String getHpzl() {
		return hpzl;
	}

	public void setHpzl(String hpzl) {
		this.hpzl = hpzl;
	}

	public String getHphm() {
		return hphm;
	}

	public void setHphm(String hphm) {
		this.hphm = hphm;
	}

	public String getDabh() {
		return dabh;
	}

	public void setDabh(String dabh) {
		this.dabh = dabh;
	}

	public int getType() {
		return type;
	}

	public void setType(int type) {
		this.type = type;
	}

	public String getSfzmhm() {
		return sfzmhm;
	}

	public void setSfzmhm(String sfzmhm) {
		this.sfzmhm = sfzmhm;
	}

	//驾驶人
	private Driver driver;

	//驾驶人信息
	private List<DriverInfo> driverInfo;

	private List<DrivingLicence> drivingLicence;

	private List<CarInfo> carInfos;

	private List<IllegalInfo> illegalInfos;

	private List<MonitoringInfo> monitoringInfos;


	private List<DriverPhoto> driverPhotos;

    private List<MonitorPhoto> monitorPhotos;

    private List<LogInfo> logInfos;

    private List<AccountCheck> accountCheck;

    private List<IllegalCode> illegalCodes;

    private List<CheckDriver> checkDrivers;

	public List<CheckDriver> getCheckDrivers() {
		return checkDrivers;
	}

	public void setCheckDrivers(List<CheckDriver> checkDrivers) {
		this.checkDrivers = checkDrivers;
	}

	public List<IllegalCode> getIllegalCodes() {
		return illegalCodes;
	}

	public void setIllegalCodes(List<IllegalCode> illegalCodes) {
		this.illegalCodes = illegalCodes;
	}

	public List<AccountCheck> getAccountCheck() {
        return accountCheck;
    }

    public void setAccountCheck(List<AccountCheck> accountCheck) {
        this.accountCheck = accountCheck;
    }

    public List<LogInfo> getLogInfos() {
        return logInfos;
    }

    public void setLogInfos(List<LogInfo> logInfos) {
        this.logInfos = logInfos;
    }

    public List<MonitorPhoto> getMonitorPhotos() {
        return monitorPhotos;
    }

    public void setMonitorPhotos(List<MonitorPhoto> monitorPhotos) {
        this.monitorPhotos = monitorPhotos;
    }

    public List<DriverPhoto> getDriverPhotos() {
        return driverPhotos;
    }

    public void setDriverPhotos(List<DriverPhoto> driverPhotos) {
        this.driverPhotos = driverPhotos;
    }

    public List<MonitoringInfo> getMonitoringInfos() {
		return monitoringInfos;
	}

	public void setMonitoringInfos(List<MonitoringInfo> monitoringInfos) {
		this.monitoringInfos = monitoringInfos;
	}

	public List<IllegalInfo> getIllegalInfos() {
		return illegalInfos;
	}

	public void setIllegalInfos(List<IllegalInfo> illegalInfos) {
		this.illegalInfos = illegalInfos;
	}

	public List<CarInfo> getCarInfos() {
		return carInfos;
	}

	public void setCarInfos(List<CarInfo> carInfos) {
		this.carInfos = carInfos;
	}

	public List<DriverInfo> getDriverInfo() {
		return driverInfo;
	}

	public void setDriverInfo(List<DriverInfo> driverInfo) {
		this.driverInfo = driverInfo;
	}

	public Driver getDriver() {
		return driver;
	}

	public void setDriver(Driver driver) {
		this.driver = driver;
	}

    public List<DrivingLicence> getDrivingLicence() {
        return drivingLicence;
    }

    public void setDrivingLicence(List<DrivingLicence> drivingLicence) {
        this.drivingLicence = drivingLicence;
    }

    public String getXtlb() {
		return xtlb;
	}

	public void setXtlb(String xtlb) {
		this.xtlb = xtlb;
	}

	public String getJkxlh() {
		return jkxlh;
	}

	public void setJkxlh(String jkxlh) {
		this.jkxlh = jkxlh;
	}

	public String getJkid() {
		return jkid;
	}

	public void setJkid(String jkid) {
		this.jkid = jkid;
	}

	public String getQueryXmlDoc() {
		return QueryXmlDoc;
	}

	public void setQueryXmlDoc(String queryXmlDoc) {
		QueryXmlDoc = queryXmlDoc;
	}

	@SuppressWarnings("unused")
	public class Driver{
		//身份证明号码
		private String sfzmhm ;
		//档案编号
		private String dabh;
	}

	//驾驶证
	public static class DrivingLicence {
		//身份证明名称
		public String sfzmmc ;

		//身份证明号码
		public String sfzmhm;

		//号码长度标志
		public String hmcd ;

		//姓名
		public String xm;

		//性别
		public String xb ;

		//出生日期
		public Date csrq;

		//国籍
		public String gj ;

		//登记住所行政区划
		public String djzsxzqh;

		//登记住所详细地址
		public String djzsxxdz ;

		//联系住所行政区划
		public String lxzsxzqh;

		//联系住所详细地址
		public String lxzsxxdz ;

		//邮政编码
		public String lxzsyzbm;

		//联系电话
		public String lxdh ;

		//手机号码
		public String sjhm;


		//电子邮箱
		public String dzyx ;

		//档案编号
		public String dabh;

		//准驾车型
		public String zjcx ;

		//累积记分
		public int ljjf;

		//状态
		public String zt ;

		//初次领证日期
		public Date cclzrq;

		//驾证期限
		public String jzqx ;

		//下一体检日期
		public Date syrq;

		//有效期始
		public Date yxqs ;

		//有效期止
		public Date yxqz;

		//行政区划
		public String xzqh ;

		//暂住证
		public String zzzm;

		//更新时间
		public Date gxsj ;

		//证芯编号
		public String zxbh;

		//发证机关
		public String fzjg;
	}

	//驾驶人信息
	public static class DriverInfo{

		//身份证明号码
		public String sfzmhm;

		//身份证明名称
		public String sfzmmc ;

		//号码长度标志 1 15位身份证 2 18位身份证 3 其它证件
		public String hmcd ;

		//姓名
		public String xm;

		//性别 1 男2女9未说明
		public String xb ;

		//出生日期
		public String csrq;

		//国籍
		public String gj ;

		//登记住所行政区划
		public String djzsxzqh;

		//登记住所详细地址
		public String djzsxxdz ;

		//联系住所行政区划
		public String lxzsxzqh;

		//联系住所详细地址
		public String lxzsxxdz ;

		//邮政编码
		public String lxzsyzbm;

		//联系电话
		public String lxdh ;

		//暂住证
		public String zzzm;

		//更新时间
		public String gxsj ;

		//是否本地 1本地0外地
		public String sfbd ;

		//手机号码
		public String sjhm;

		//电子邮箱
		public String dzyx ;


	}

	//机动车基本信息
	public static class CarInfo{

		//机动车序号
		public String xh;

		//号牌种类
		public String hpzl ;

		//号牌号码
		public String hphm ;

		//中文品牌
		public String clpp1;

		//车辆型号
		public String clxh ;

		//英文品牌
		public String clpp2;

		//国产/进口
		public String gcjk ;

		//制造国
		public String zzg;

		//制造厂名称
		public String zzcmc ;

		//车辆识别代号
		public String clsbdh;

		//发动机号
		public String fdjh ;

		//车辆类型
		public String cllx;

		//车身颜色
		public String csys ;

		//使用性质
		public String syxz;

		//身份证明号码
		public String sfzmhm ;

		//身份证明名称
		public String sfzmmc ;

		//机动车所有人
		public String syr;

		//初次登记日期
		public String ccdjrq ;

		//最近定检日期
		public String djrq ;

		//检验有效期止
		public String yxqz ;

		//强制报废期止
		public String qzbfqz;

		//发证机关
		public String fzjg ;

		//管理部门
		public String glbm ;

		//保险终止日期
		public String bxzzrq ;

		//机动车状态
		public String zt;

		//抵押标记
		public String dybj ;

		//发动机型号
		public String fdjxh ;

		//燃料种类
		public String rlzl ;

		//排量
		public String pl;

		//功率
		public String gl ;

		//转向形式
		public String zxxs ;

		//车外廓长
		public String cwkc ;

		//车外廓宽
		public String cwkk;

		//车外廓高
		public String cwkg ;

		//货箱内部长度
		public String hxnbcd ;

		//货箱内部宽度
		public String hxnbkd ;

		//货箱内部高度
		public String hxnbgd;

		//钢板弹簧片数
		public String gbthps ;

		//轴数
		public String zs ;

		//轴距
		public String zj ;

		//前轮距
		public String qlj;

		//后轮距
		public String hlj ;

		//轮胎规格
		public String ltgg ;

		//轮胎数
		public String lts ;

		//总质量
		public String zzl;

		//整备质量
		public String zbzl ;

		//核定载质量
		public String hdzzl ;

		//核定载客
		public String hdzk ;

		//准牵引总质量
		public String zqyzl;

		//驾驶室前排载客人数
		public String qpzk ;

		//驾驶室后排载客人数
		public String hpzk ;

		//环保达标情况
		public String hbdbqk ;

		//出厂日期
		public String ccrq;

		//车辆用途
		public String clyt ;

		//用途属性
		public String ytsx ;

		//行驶证证芯编号
		public String xszbh ;

		//检验合格标志
		public String jyhgbzbh;

		//住所详细地址
		public String zzxxdz ;

		//手机号码
		public String sjhm ;

		//联系电话
		public String lxdh ;

	}

	//违法信息
	public static class IllegalInfo{

		//违法编号
		public String wfbh;

		//决定书类别
		public String jdslb ;

		//决定书编号
		public String jdsbh ;

		//文书校验位
		public String wsjyw;

		//人员分类
		public String ryfl ;

		//驾驶证号
		public String jszh;

		//档案编号
		public String dabh ;

		//发证机关
		public String fzjg;

		//准驾车型
		public String zjcx ;

		//当事人
		public String dsr;

		//住所行政区划
		public String zsxzqh ;

		//住所详细地址
		public String zsxxdz;

		//电话
		public String dh ;

		//联系方式
		public String lxfs;

		//车辆分类
		public String clfl ;

		//号牌种类
		public String hpzl ;

		//号牌号码
		public String hphm;

		//机动车所有人
		public String jdcsyr ;

		//机动车使用性质
		public String syxz;

		//交通方式
		public String jtfs ;

		//违法时间
		public String wfsj ;

		//违法地点
		public String wfdd;

		//违法地址
		public String wfdz ;

		//违法行为
		public String wfxw;

		//违法记分数
		public String wfjfs ;

		//罚款金额
		public String fkje;

		//实测值
		public String scz ;

		//标准值
		public String bzz;

		//滞纳金
		public String znj ;

		//执勤民警
		public String zqmj;

		//交款方式
		public String jkfs ;

		//发现机关
		public String fxjg;

		//发现机关名称
		public String fxjgmc ;

		//处理机关
		public String cljg ;

		//处理机关名称
		public String cljgmc;

		//处罚种类
		public String cfzl ;

		//处理时间
		public String clsj;

		//交款标记
		public String jkbj ;

		//交款日期
		public String jkrq ;

		//强制措施凭证号
		public String pzbh;

		//拒收拒签标记
		public String jsjqbj ;

		//记录类型
		public String jllx;

		//录入人
		public String lrr ;

		//录入时间
		public String lrsj;

		//经办人1
		public String jbr1 ;

		//经办人2
		public String jbr2;

		//事故等级
		public String sgdj ;

		//信息来源
		public String xxly;

		//写入模式
		public String xrms ;

		//接受机关
		public String jsjg;

		//发送机关
		public String fsjg ;

		//更新时间
		public String gxsj ;

		//备注
		public String bz;

		//应收滞纳金
		public String ysznj ;


	}

	//电子监控文本信息
	public static class MonitoringInfo{
		//序号
		public String xh;

		//违法采集机关
		public String cjjg ;

		//采集机关名称
		public String cjjgmc ;

		//车辆分类
		public String clfl ;

		//号牌种类
		public String hpzl ;

		//号牌号码
		public String hphm;

		//机动车所有人
		public String jdcsyr ;

		//机动车使用性质
		public String syxz;

		//发动机号
		public String fdjh;

		//车辆识别代号
		public String clsbdh ;

		//车身颜色
		public String csys;

		//车辆品牌
		public String clpp ;

		//交通方式
		public String jtfs ;


		//发证机关
		public String fzjg;

		//住所行政区划
		public String zsxzqh ;

		//住所详细地址
		public String zsxxdz;

		//电话
		public String dh ;

		//联系方式
		public String lxfs;

		//通知书号
		public String tzsh ;

		//通知标记
		public String tzbj ;

		//通知日期
		public String tzrq;

		//采集方式
		public String cjfs ;

		//违法时间
		public String wfsj;

		//违法地点
		public String wfdd ;

		//违法地址
		public String wfdz;

		//违法行为
		public String wfxw ;

		//罚款金额
		public String fkje ;

		//实测值
		public String scz;

		//标准值
		public String bzz ;

		//执勤民警
		public String zqmj;

		//处理机关
		public String cljg ;

		//处理机关名称
		public String cljgmc;

		//处理时间
		public String clsj;

		//处理标记
		public String clbj ;

		//交款方式
		public String jkfs ;

		//缴款日期
		public String jkrq;

		//强制措施凭证号
		public String pzbh;

		//违法编号
		public String wfbh;

		//决定书号
		public String jdsbh ;

		//决定书号校验位
		public String wsjyw ;

		//决定书类别
		public String jdslb ;

		//当事人
		public String dsr;

		//经办人
		public String jbr ;

		//录入人
		public String lrr ;

		//录入时间
		public String lrsj;

		//记录类型
		public String jllx ;

		//处理对象标记
		public String cldxbj;

		//写入模式
		public String xrms;

		//接受机关
		public String jsjg;

		//发送机关
		public String fsjg ;

		//更新时间
		public String gxsj ;

		//备注
		public String bz;

		//交款标记
		public String jkbj ;

	}

	//驾驶人照片信息
    public static class DriverPhoto {
        //照片
        public String zp;

		//照片名称
		public String name;

    }

    //电子监控照片信息
    public static class MonitorPhoto {
        //序号
        public String xh;
        //号牌种类
        public String hpzl;
        //号牌号码
        public String hphm;
        //录入时间
        public String lrsj;
        //记录类型
        public String jllx;
        //照片1 Base64编码
        public String zpstr1;
        //照片2 Base64编码
        public String zpstr2;
        //照片3 Base64编码
        public String zpstr3;

    }

    //日志信息
    public static class LogInfo {
        //管理部门
        public String glbm;
        //用户代号
        public String yhdh;
        //经办人
        public String jbr;
        //操作时间
        public String czsj;
        //菜单编号
        public String cdbh;
        //功能ID
        public String gnid;
        //操作内容
        public String cznr;
        //决定书编号
        public String jdsbh;
        //凭证编号
        public String pzbh;
        //序号
        public String xh;
        //驾驶证号
        public String jszh;
        //档案编号
        public String dabh;
        //号牌种类
        public String hpzl;
        //号牌号码
        public String hphm;
        //ip地址
        public String ip;
        //备注
        public String bz;

    }

    //查询银行对账信息
    public static class AccountCheck {
        //决定书编号
        public String jdsbh;
        //决定书类别
        public String jdslb;
        //证件号码
        public String zjhm;
        //档案编号
        public String dabh;
        //当事人
        public String dsr;
        //号牌种类
        public String hpzl;
        //号牌号码
        public String hphm;
        //处理机关
        public String cljg;
        //处理时间
        public String clsj;
        //罚款金额
        public String fkje;
        //滞纳金
        public String znj;
        //交款日期
        public String jkrq;
        //罚款收据编号
        public String fksjbh;
        //收款机构
        public String skjg;
        //匹配标记
        public String ppbj;
        //匹配原因
        public String ppyy;
        //写入模式
        public String xrms;
        //录入人
        public String lrr;
        //录入时间
        public String lrsj;
        //更新时间
        public String gxsj;
        //信息来源
        public String xxly;
        //备注
        public String bz;

    }

    //电子监控简易程序处理写入接口
    public static class WriteMonitoringInfo{
        //电子监控记录表中的主键xh，表明要处理的电子监控记录。
        public String xh;

        //决定书编号 决定书编号可空，为空时，接口自动生成决定书编号，写入成功后将自动返回决定书编号；决定书编号不为空时，如编号通过文书管发放的，接口将自动更新文书状态。如由外挂系统自动生成的，则需跟手工印刷的编号进行区分，需要统一规划号段的划分
        public String jdsbh ;

        //处理机关 必须在部门代码表存在，处理机关不允许为总队级别的部门代码，接口中判断传入的处理机关和接口序列号所包含的发证机关是否一4致，防止使用同一个的接口序列号，使用不同的处理机关代码处理其他支队业务数据
        public String cljg ;

        //处理时间 YYYY-MM-DD hh24:MI精确到分
        public String clsj ;

        //经办人 经办人姓名
        public String jbr1 ;

        //人员分类 必须符合代码表中xtlb=04和dmlb=0080的代码，人员分类必须为“4-公安驾驶证”、“8-机动车所有人”、“9-其他”，对于人员分类为“4”的系统将自动对驾驶人进行记分，其他时记分默认为“0”
        public String ryfl ;

        //驾驶证号
        public String jszh ;

        //档案编号
        public String dabh;

        //发证机关,驾驶证的发证机关，行人等传入“无”
        public String fzjg;

        //准驾车型
        public String zjcx ;

        //当事人
        public String dsr;

        //住所行政区划
        public String zsxzqh ;

        //住所详细地址
        public String zsxxdz ;


        //电话
        public String dh;

        //联系方式
        public String lxfs ;

        //处罚种类,必须为“警告”或“罚款”之一，必须符合代码表中xtlb=04和dmlb=0002的代码
        public String cfzl;

        //罚款金额,整数，对于处罚种类为“警告”的，罚款金额应为“0”，不能超过200
        public String fkje ;

    }

    //银行对账录入接口
    public static class WriteAccount{
        //决定书编号
        public String jdsbh;

        //当事人
        public String dsr ;

        //证件号码
        public String zjhm ;

        //罚款金额
        public String fkje ;

        //滞纳金
        public String znj ;

        //交款日期
        public String ryfl ;

        //罚款收据编号
        public String fksjbh ;

        //收款机关
        public String skjg;

        //录入人
        public String lrr;

    }

    //电子监控简易程序处理并银行对账接口
    public static class WriteMonitorAndAccount{
        //电子监控记录表中的主键xh，表明要处理的电子监控记录。
        public String xh;

        //决定书编号 决定书编号可空，为空时，接口自动生成决定书编号，写入成功后将自动返回决定书编号；决定书编号不为空时，如编号通过文书管发放的，接口将自动更新文书状态。如由外挂系统自动生成的，则需跟手工印刷的编号进行区分，需要统一规划号段的划分
        public String jdsbh ;

        //处理机关 必须在部门代码表存在，处理机关不允许为总队级别的部门代码，接口中判断传入的处理机关和接口序列号所包含的发证机关是否一4致，防止使用同一个的接口序列号，使用不同的处理机关代码处理其他支队业务数据
        public String cljg ;

        //处理时间 YYYY-MM-DD hh24:MI精确到分
        public String clsj ;

        //经办人 经办人姓名
        public String jbr1 ;

        //人员分类 必须符合代码表中xtlb=04和dmlb=0080的代码，人员分类必须为“4-公安驾驶证”、“8-机动车所有人”、“9-其他”，对于人员分类为“4”的系统将自动对驾驶人进行记分，其他时记分默认为“0”
        public String ryfl ;

        //驾驶证号
        public String jszh ;

        //档案编号
        public String dabh;

        //发证机关,驾驶证的发证机关，行人等传入“无”
        public String fzjg;

        //准驾车型
        public String zjcx ;

        //当事人
        public String dsr;

        //住所行政区划
        public String zsxzqh ;

        //住所详细地址
        public String zsxxdz ;

        //电话
        public String dh;

        //联系方式
        public String lxfs ;

        //处罚种类,必须为“警告”或“罚款”之一，必须符合代码表中xtlb=04和dmlb=0002的代码
        public String cfzl;

        //罚款金额,整数，对于处罚种类为“警告”的，罚款金额应为“0”，不能超过200
        public String fkje ;

        //罚款收据编号
        public String fksjbh;

        //收款机关
        public String skjg ;

    }

	//14查询驾驶人能否处理接口
	public static class CheckDriver {
		//对于code为0的返回具体的不可处理原因，对code为2的返回备案生效时间，格式为yyyy-MM-dd hh24:mi:ss
		public String msg;
		//标记记：0-无法处理,表示非车主且为重点人员或无备案信息；1-可处理，标识为车主本人；2-有备案，表有备案信息，
		// 会返回具体的备案生效时间，外挂系统可以将该时间与待处理违法的违法时间做比对校验
		public String code;

		//驾驶证号
		public String jszh;

		//驾驶人姓名
		public String xm;

		//号牌种类
		public String hpzl;

		//号牌号码
		public String hphm;

		public String getMsg() {
			return msg;
		}

		public void setMsg(String msg) {
			this.msg = msg;
		}

		public String getCode() {
			return code;
		}

		public void setCode(String code) {
			this.code = code;
		}

		public String getJszh() {
			return jszh;
		}

		public void setJszh(String jszh) {
			this.jszh = jszh;
		}

		public String getXm() {
			return xm;
		}

		public void setXm(String xm) {
			this.xm = xm;
		}

		public String getHpzl() {
			return hpzl;
		}

		public void setHpzl(String hpzl) {
			this.hpzl = hpzl;
		}

		public String getHphm() {
			return hphm;
		}

		public void setHphm(String hphm) {
			this.hphm = hphm;
		}
	}

	//15违法行为代码查询接口
	public static class IllegalCode {
		//违法ID
		public String id;
		//违法代码说明
		public String code;

		public String getId() {
			return id;
		}

		public void setId(String id) {
			this.id = id;
		}

		public String getCode() {
			return code;
		}

		public void setCode(String code) {
			this.code = code;
		}
	}

}
